package com.amumu.drama.common.modules.order.dao;


import com.amumu.drama.common.modules.order.dto.OmsOrderDetail;
import com.amumu.drama.common.modules.order.dto.resp.UserTranInfoDto;
import com.amumu.drama.model.OmsOrder;
import com.amumu.drama.model.OmsOrderItem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 前台订单管理自定义Dao
 * Created by macro on 2018/9/4.
 */
@Mapper
public interface PortalOrderDao extends BaseMapper<OmsOrder> {
    /**
     * 获取订单及下单商品详情
     */
    OmsOrderDetail getDetail(@Param("orderId") Long orderId);

    /**
     * 修改 pms_sku_stock表的锁定库存及真实库存
     */
    int updateSkuStock(@Param("itemList") List<OmsOrderItem> orderItemList);

    /**
     * 获取超时订单
     *
     * @param minute 超时时间（分）
     */
    List<OmsOrderDetail> getTimeOutOrders(@Param("minute") Long minute);

    /**
     * 批量修改订单状态
     */
    int updateOrderStatus(@Param("ids") List<Long> ids, @Param("status") Integer status);

    /**
     * 解除取消订单的库存锁定
     */
    int releaseSkuStockLock(@Param("itemList") List<OmsOrderItem> orderItemList);

    /** 获取订单及下单商品详情 */
    OmsOrderDetail getDetailByOrderSn(@Param("orderSn") String orderSn);

    /** 获取订单及下单商品详情 */
    OmsOrderDetail getDetailByPayOrderSn(@Param("payOrderSn") String payOrderSn);

    /** 获取订单及下单商品详情 */
    OmsOrder getDetailByDeliverySn(@Param("deliverySn") String deliverySn);

    /**
     * 获取用户交易信息
     *
     * @return
     */
    List<UserTranInfoDto> getUserTransInfo();


}
